﻿<%@ Application Language="C#" %>

<script runat="server">

    void Application_Start(object sender, EventArgs e) 
    {
        // Code that runs on application startup
        SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(SiteMap_SiteMapResolve);

    }
    
    /// <summary>
    /// Okida se kod svake obrade site mape, sluzi custom implementaciji site mape u ovisnosti o
    /// querystringovima
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    /// <returns></returns>
    SiteMapNode SiteMap_SiteMapResolve(object sender, SiteMapResolveEventArgs e)
    {
        
        ////////////////////////////////////Obrada za drvece.aspx i drvo.aspx/////////////////////
        if (e.Context.Request.AppRelativeCurrentExecutionFilePath.Equals("~/Drvece.aspx", StringComparison.OrdinalIgnoreCase))
        {
            string kategorija = null;
            if (e.Context.Request.QueryString["kategorija"] != null)
            {
                SiteMapNode currentNode = SiteMap.CurrentNode.Clone(true);
                SiteMapNode tempNode = currentNode;

                kategorija = e.Context.Request.QueryString["kategorija"].ToString();
                if (kategorija == "zimzeleno")
                {
                    currentNode.Title = "Zimzeleno drveće";
                }
                else if (kategorija == "listopadno")
                {
                    currentNode.Title = "Listopadno drveće";
                }
                else if (kategorija == "grmovi")
                {
                    currentNode.Title = "Grmovi";
                }
                else
                {
                    currentNode.Title = "Popis drveća";
                }
                currentNode.Url += "kategorija?=" + kategorija;
               
                return currentNode;
            }
            
        }

        if (e.Context.Request.AppRelativeCurrentExecutionFilePath.Equals("~/Drvo.aspx", StringComparison.OrdinalIgnoreCase))
        {
            KorisnickiDioUtility u = new KorisnickiDioUtility();
            
            SiteMapNode currentNode = SiteMap.CurrentNode.Clone(true);
            SiteMapNode tempNode = currentNode;
            string naziv=null;
            string kategorija=null;
            if (e.Context.Request.QueryString["id"] != null)
            {
                int id;
                bool flag = Int32.TryParse(e.Context.Request.QueryString["id"], out id);
                if (flag)
                {
                    naziv = u.NazivDrvetaPoID(id);
                    if (naziv != null)
                    {
                        tempNode.Title = naziv;
                    }
                }
            }
            try
            {
                NameValueCollection nameValueCollection = HttpUtility.ParseQueryString(e.Context.Request.UrlReferrer.Query);
                kategorija = nameValueCollection["kategorija"];
            }
            catch
            {
                
            }
           
            
            if (kategorija != null)
            {
                tempNode.ParentNode.Url = e.Context.Request.UrlReferrer.ToString();
                if (kategorija == "zimzeleno")
                {
                    tempNode.ParentNode.Title = "Zimzeleno drveće";
                }
                else if (kategorija == "listopadno")
                {
                    tempNode.ParentNode.Title = "Listopadno drveće";
                }
                else if (kategorija == "grmovi")
                {
                    tempNode.ParentNode.Title = "Grmovi";
                }
                else
                {
                    tempNode.ParentNode.Title = "Popis drveća";
                }
            }
            return currentNode;
            
        }
        
        ////////////////Obrada za clanci.aspx i clanak.aspx/////////////////////////

        if (e.Context.Request.AppRelativeCurrentExecutionFilePath.Equals("~/Clanci.aspx", StringComparison.OrdinalIgnoreCase))
        {
            string kategorija = null;
            if (e.Context.Request.QueryString["kategorija"] != null)
            {
                SiteMapNode currentNode = SiteMap.CurrentNode.Clone(true);
                SiteMapNode tempNode = currentNode;

                kategorija = e.Context.Request.QueryString["kategorija"].ToString();
                currentNode.Url += "kategorija?=" + kategorija;

                if (kategorija == "sadnja")
                {
                    currentNode.Title = "Sadnja drveća";
                }
                else if (kategorija == "bolesti_drveca")
                {
                    currentNode.Title = "Bolesti drveća";
                }
                else if (kategorija == "razmnozavanje_drveca")
                {
                    currentNode.Title = "Razmnožavanje drveća";
                }
                else if(kategorija=="opcenito")
                {
                    currentNode.Title = "Općenito";
                }
                else if (kategorija == "aktualno")
                {
                    currentNode.Title = "Aktualno";
                }
                else
                {
                    currentNode.Title = "Popis članaka";
                }
                return currentNode;
            }

        }

        if (e.Context.Request.AppRelativeCurrentExecutionFilePath.Equals("~/Clanak.aspx", StringComparison.OrdinalIgnoreCase))
        {
            KorisnickiDioUtility u = new KorisnickiDioUtility();

            SiteMapNode currentNode = SiteMap.CurrentNode.Clone(true);
            SiteMapNode tempNode = currentNode;
            string naziv = null;
            string kategorija = null;
            if (e.Context.Request.QueryString["id"] != null)
            {
                int id;
                bool flag = Int32.TryParse(e.Context.Request.QueryString["id"], out id);
                if (flag)
                {
                    naziv = u.NazivClankaPoID(id);
                    if (naziv != null)
                    {
                        tempNode.Title = naziv;
                    }
                }
            }
            try
            {
                NameValueCollection nameValueCollection = HttpUtility.ParseQueryString(e.Context.Request.UrlReferrer.Query);
                kategorija = nameValueCollection["kategorija"];
            }
            catch
            {

            }


            if (kategorija != null)
            {
                tempNode.ParentNode.Url = e.Context.Request.UrlReferrer.ToString();
                if (kategorija == "sadnja")
                {
                    tempNode.ParentNode.Title = "Sadnja drveća";
                }
                else if (kategorija == "bolesti_drveca")
                {
                    tempNode.ParentNode.Title = "Bolesti drveća";
                }
                else if (kategorija == "razmnozavanje_drveca")
                {
                    tempNode.ParentNode.Title = "Razmnožavanje drveća";
                }
                else if (kategorija == "opcenito")
                {
                    tempNode.ParentNode.Title = "Općenito";
                }
                else if (kategorija == "aktualno")
                {
                    tempNode.ParentNode.Title = "Aktualno";
                }
                else
                {
                    tempNode.ParentNode.Title = "Popis članaka";
                }
            }
            return currentNode;

        }
        
        return null; // defaultna implementacija u slucaju da nije zadovoljen nijedan uvjet; 

    }
    
    void Application_End(object sender, EventArgs e) 
    {
        //  Code that runs on application shutdown

    }
        
    void Application_Error(object sender, EventArgs e) 
    { 
        // Code that runs when an unhandled error occurs

    }

    void Session_Start(object sender, EventArgs e) 
    {
        // Code that runs when a new session is started

    }

    void Session_End(object sender, EventArgs e) 
    {
        // Code that runs when a session ends. 
        // Note: The Session_End event is raised only when the sessionstate mode
        // is set to InProc in the Web.config file. If session mode is set to StateServer 
        // or SQLServer, the event is not raised.

    }
       
</script>
